package models;

import dao.DAOGrupoMuscular;

public class GrupoMuscular {
	public int id;
	public String nome;
	
	public String toString(){
		return id + " - " + nome;
	}
	
	public void cadastrar() throws NegocioException {
		
		this.nome = this.nome.trim();
		
		if (this.nome != null && !this.nome.equals("")) {
			
			DAOGrupoMuscular dao = new DAOGrupoMuscular();

			try {
				GrupoMuscular gm = dao.select(this.nome);
				if (gm == null) {
					dao.insert(this);
				} else {
					System.out.println("Em modelo: id="+ gm.id);
					throw new NegocioException("Grupo muscular não cadastrado. Ele já se encontra cadastrado.");
				}

			} catch (Exception e) {
				throw new NegocioException("Grupo muscular não cadastrado. Erro de comunicação com o Banco de Dados.");
			}
			
		} else {
			throw new NegocioException("Grupo muscular não foi cadastrado. Um nome deve ser informado.");
		}
	}
	
	
	public void editar() throws NegocioException {
		
		this.nome = this.nome.trim();
		
		if (this.nome != null && !this.nome.equals("")) {
			
			DAOGrupoMuscular dao = new DAOGrupoMuscular();

			try {
				GrupoMuscular gm = dao.select(this.id);
				if (gm != null) {
					dao.update(this);
				} else {
					throw new NegocioException("Grupo muscular não foi alterado. Não existe grupos muscular com código especificado.");
				}

			} catch (Exception e) {
				throw new NegocioException("Grupo muscular não foi alterado. Erro de comunicação com o Banco de Dados.");
			}
			
		} else {
			throw new NegocioException("Grupo muscular não foi alterado. Um nome deve ser informado.");
		}
		
	}
	
	
	public void remover() throws NegocioException {
		
		DAOGrupoMuscular dao = new DAOGrupoMuscular();

		try {
			GrupoMuscular gm = dao.select(this.id);
			if (gm != null) {
				dao.delete(this);
			} else {
				throw new NegocioException("Grupo muscular não foi removido. Não existe grupos muscular com código especificado.");
			}

		} catch (Exception e) {
			throw new NegocioException("Grupo muscular não foi removido. Erro de comunicação com o Banco de Dados.");
		}
		
	}
	
}
